
#include "free_watchdog_driver.h"
#include "gd32f4xx_fwdgt.h"
#include <stdio.h>
#include "systick.h"

void free_watchdog_config(void)
{
    // 开启FWdgt(独立看门狗)
    rcu_osci_on(RCU_IRC32K);
    // 开启晶振,等待稳定
    while (ERROR == rcu_osci_stab_wait(RCU_IRC32K))
        ;

    // 设置FWDGT的分频与初始化计数值
    // 分频32倍:32000/32 = 1000Hz
    fwdgt_config(2000, FWDGT_PSC_DIV32);
    // 使能
    fwdgt_enable();
}

void free_watchdog_test(void)
{
    printf("重启了\n");
    free_watchdog_config();
    while (1)
    {
        delay_1ms(2000);
        fwdgt_counter_reload(); // 喂狗
        printf("free watchdog,wang wang wang...\n");
    }
}